package main

import (
	_ "baseLearning/base1/pkg" //引入某个包，但不直接使用包里的函数，而是调用该包里面的init函数
	"fmt"
)

func mainMap() {
	fmt.Println("xxx") // 定义map
	var m map[string]string
	// 创建空间
	m = make(map[string]string, 2) // size可以不写，默认为1

	m["name"] = "张三"
	m["age"] = "21"
	m["addr"] = "湖南长沙"

	fmt.Println(m)
	//简写
	m2 := map[string]string{
		"name": "张三",
		"age":  "12",
	}
	fmt.Println(m2)
	//检查某个key是否存在
	v, xx := m2["name"]
	if xx {
		// 如果存在，ok就为true
		fmt.Printf("v = %v", v)
	} else {
		fmt.Printf("v不存在")
	}
	/*

			map只有len，没有cap

		len一个map，得到的就是key的个数

		只有for range一种遍历方式

			**/
	for key, value := range m {
		fmt.Printf("key=%v,value=%v\n", key, value)
	}

	//切片中的元素为mapl类型
	var mapSlice = make([]map[string]string, 3)

	for index, value := range mapSlice {
		fmt.Println("index:%d value:%v\n", index, value)
	}

	// 对切片中的map元素进行初始化
	mapSlice[0] = make(map[string]string)
	mapSlice[0]["name"] = "小明"
	mapSlice[0]["gender"] = "男"
	mapSlice[0]["address"] = "长沙"
	for index, value := range mapSlice {
		fmt.Printf("index:%d value:%v\n", index, value)
	}

	m4 := make(map[string][]string)
	fmt.Println(m4)
	val := []string{"北京", "上海"}

	m4["中国"] = val

	fmt.Println(m4)

	m4["中国"] = append(m4["中国"], "广州", "深圳")

	fmt.Println(m4)

}
